package com.mywangjie.delete.utils;

import java.io.File;

/**
 * @author wangjie
 * @version V1.0
 * @title: DelFile
 * @package: com.example.delete
 * @description: TODO
 * @date 2021/10/21 6:18 下午
 **/
// 我也来一段java的删除指定目录下的指定文件或目录，其中部分代码为网上剽窃，原作者不知在哪了。。。。
// 传参：1.目录，2.要删除的文件夹名、文件名、文件后缀
public class DelFile {

    /**
     * @author xulu
     * @function 扫描待删除的目录或文件
     * @root 待扫描的根目录
     * @suffix 待删除的目录或文件(扩展名匹配)
     */
    public static void scanAllFile(File root, String... suffix) {
        for (File file : root.listFiles()) {
            if (isMatch(file.getName(), suffix)) {
                delAllFile(file);
            } else if (file.isDirectory()) {
                scanAllFile(file, suffix);
            }
        }
    }

    // 判断是否为待删除的目录或文件
    public static boolean isMatch(String name, String... suffix) {
        for (String s : suffix) {
            if (name.endsWith(s)) {
                return true;
            }
        }
        return false;
    }

    // 删除指定的目录或文件
    public static void delAllFile(File file) {
        if (file.isDirectory()) {
            for (File f : file.listFiles()) {
                if (!f.delete()) {
                    delAllFile(f);
                }
            }
        }
        file.delete();
        System.out.println("delete : " + file.getAbsolutePath());
    }
}
